package com.medication.utils;

import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.google.common.collect.Lists;
import com.jfinal.ext.interceptor.excel.ExcelBean;
import com.jfinal.ext.interceptor.excel.ExcelException;
import com.jfinal.plugin.activerecord.Model;

/**
 * @author heem
 * @create time 创建时间：2017年1月4日 下午1:28:00
 * @version 1.0
 * @since
 */
public abstract class HandlerExcelData<T extends Model<?>> {

	private static String version = "1.0";

	public String handler(File sourceFile) throws Exception {
		ExcelBean bean = new ExcelBean();
		// 第二行为数据项
		bean.setStart(2);
		Map<Integer, List<List<Object>>> map = ExcelTool.readExcel(sourceFile, bean);
		if (map.size() > 1) {
			// 检查模版版本
			List<List<Object>> dataConfig = map.get(1);
			if (dataConfig.isEmpty() || !version.equals(dataConfig.get(0).get(0).toString())) {
				throw new ExcelException("Excel模版版本不正确");
			}
		} else {
			throw new ExcelException("请使用正确的Excel模版");
		}
		return handlerData(map.get(0));
	}

	public abstract String handlerData(List<List<Object>> objects);
	
	public abstract File exportExcel(List<T> data);
}
